window.onload = function()
{
    var pathName =window.location.hostname;
	//第一步：获取需要的元素
	//定义表格
	var table = document.getElementById('tableCar');
	//定义所有的勾选框
	var selectInputs = document.getElementsByClassName('check');
	//定义全选框
	var checkAllInputs = document.getElementsByClassName('checkAll');
	//定义表格内的行
	var tr = table.children[1].rows;
	//定义已选商品数量
	var selectTotal = document.getElementById('selectTotal');
	//定义总计
	var priceTotal = document.getElementById('priceTotal');
	//定义删除选中商品
	var deleteSelect = document.getElementById('deleteSelect');
	
	//第二步 编写单选/全选的功能
	for(var i = 0;i<selectInputs.length;i++)
	{
		selectInputs[i].onclick = function()
		{
			//如果有全选的类名，勾选框全部选中
			if(this.className.indexOf('checkAll') >= 0)
			{
				for(var j = 0;j<selectInputs.length;j++)
				{
					selectInputs[j].checked = this.checked;
				}
			}
			//有其中的一个未勾选，就要取消全选的状态
			if(!this.checked)
			{
				for(var i = 0;i<checkAllInputs.length;i++)
				{
					//取消全选的状态
					checkAllInputs[i].checked = false ;
				}
			}
			getTotal();
		}
	}
	
	//为每行元素添加事件
	for(var i =0;i<tr.length;i++)
	{
		tr[i].onclick = function(e)
		{
			//获取事件对象(为了更好的兼容所有的浏览器)
			var e = e || window.event;
			//通过这个事件对象的属性去获取触发元素
			var el = e.target || r.srcElement;
			//获取触发元素里面的类
			var classes = el.className;
			//定义数量
			var nums = this.getElementsByTagName('input')[1];
			//转换成正整数
			var value = parseInt(nums.value);
			
			switch(classes){
				//点击加号
				case "add":

					nums.value = value + 1;
					var product_id = this.getElementsByTagName('input')[2].value;
					var url = '/car/updateNum'
					post( url,product_id,'1');
					getsubTotal(this);
					break;
				case "reduce":
					//当我们的数量大于1的时候才能进行点击－，否则成为了负数
					if(value >1)
					{
						nums.value = value - 1;
                        var product_id = this.getElementsByTagName('input')[2].value;
                        var url = 'car/updateNum'
                        post( url,product_id,'0');
					}
					getsubTotal(this);
					break;
				case "delete":
					var conf = confirm('确定删除此商品吗？');
					if(conf)
					{
						//删除商品
						this.parentNode.removeChild(this);
                        var product_id = this.getElementsByTagName('input')[2].value;
                        var url = 'car/delCar'
                        post( url,product_id,'delete');
					}
					break;
			}
			getTotal();
		}
	}
	
	//计算小计
	function getsubTotal(tr)
	{
		//定义返回行元素里面的数组
		var cells = tr.cells;
		//定义小计
		var subTotal = cells[4];
		//获取单价
		var price = cells[2];
		//获取数量
		var nums = tr.getElementsByTagName('input')[1];
		
		//计算结果
		subTotal.innerHTML = (parseInt(nums.value) * parseFloat(price.innerHTML)).toFixed(2);
	}
	
	//总计和已选商品数量
	function getTotal()
	{
		//定义总价
		var prices = 0;
		//定义数量
		var selected = 0;
		
		for(var i=0,len =tr.length;i<len;i++)
		{
			//第一步判断勾选框是不是选中，选中就计算数量和总价
			if(tr[i].getElementsByTagName("input")[0].checked)
			{
				selected += parseInt(tr[i].getElementsByTagName("input")[1].value);
				prices += parseFloat(tr[i].cells[4].innerHTML);
			}
		}
		priceTotal.innerHTML = prices;
		selectTotal.innerHTML = selected;
	}
	
	//删除选中商品
	deleteSelect.onclick = function()
	{
		//判断已选数量是否为0，为0就说明没有选中，不为0，说名选中了
		if(selectTotal.innerHTML != 0)
		{
			var conf = confirm("确定删除选中商品吗？");
			if(conf)
			{
				for(var i=0;i<tr.length;i++)
				{
					if(tr[i].getElementsByTagName("input")[0].checked)
					{
						//删除对应的行数据
						tr[i].parentNode.removeChild(tr[i]);
						i--;
					}
				}
			}
		}else
		{
			alert("请选择商品！");
		}
		getTotal();
	}
	
	//默认全选
	checkAllInputs[0].checked = true;
	checkAllInputs[0].onclick();
}
